package com.khh.base.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.log4j.Logger;

import com.khh.base.assertion.AssertValue;


public class ConvertUtils {

	private static final Logger log = Logger
			.getLogger(ConvertUtils.class);

	/**
	 * 往日期中加入字母"T"，适应tuscnay对输入日期的要求
	 * 
	 * @param date
	 * @return
	 */
	public static String addLetterTintoDate(Date inputDate) {

		if (!AssertValue.isNotNull(inputDate)) {

			log.info("日期为空，无法完成添加字母T的转换！");

			return "";
		}
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

		String tempDate = sdf.format(inputDate);

		return tempDate.replace(" ", "T");
	}

	/**
	 * 删除日期中的字母"T"，转换成日期，适应tuscnay对输入日期的要求
	 * @param inputDate
	 * @return
	 */
	public static Date removeLetterTfromDate(String inputDate) {

		if (!AssertValue.isNotNullAndNotEmpty(inputDate)) {

			log.info("字符日期为空，无法完成转换！");

			return null;
		}
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		
		Date date = null;
		try {
			date = sdf.parse(inputDate.replace("T", " "));
			
		} catch (ParseException e) {
			
			e.printStackTrace();
		}
		return date; 
	}

	/**
	 * 判断Float类型是否为空值，如果为空值，则返回0.
	 * 
	 * @param obj
	 * @return
	 */
	public static float convertToFloat(Float obj) {

		if (!AssertValue.isNotNull(obj)) {
			return 0;
		}

		return obj;
	}

	/**
	 * 判断Double类型是否为空值，如果为空值，则返回0.
	 * 
	 * @param obj
	 * @return
	 */
	public static double convertToDouble(Double dou) {

		if (!AssertValue.isNotNull(dou)) {
			return 0;
		}

		return dou;
	}

	/**
	 * 判断Double类型是否为空值，如果为空值，则返回0.
	 * 
	 * @param obj
	 * @return
	 */
	public static Byte convertToByte(Byte dou) {

		if (!AssertValue.isNotNull(dou)) {
			return 0;
		}

		return dou;
	}

	/**
	 * 将字符串转换成日期
	 * 
	 * @param str
	 * @return
	 */
	public static Date convertToDate(String time) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

		if (AssertValue.isNotNullAndNotEmpty(time)) {
			try {
				Date val = sdf.parse(time);
				return val;
			} catch (ParseException e) {

				System.out.println("日期转换出现异常！" + e.getMessage());
				return null;
			}

		} else {
			return null;
		}
	}
}
